<?php  
require('REST_VisPrat_Controller.php');  
/**
 * Regroupement de web services sur les médecins
 * Le format de retour des résultats est mémorisé dans la classe mère
 * Ce format sera utilisé lors de la génération de la réponse (méthode response)
 * @author baraban
 *
 */
class WSMedecins extends REST_VisPrat_Controller {  
	/**
	 * Fournit au format xml ou json la liste des départements où réside au moins un médecin
	 * Pas de paramètres
	 * Login et mot de passe du visiteur sont traités dans le constructeur de la classe mère
	 */
    public function depts_get() {  
    	try {
    		$this->load->model("medecin_model");
    		$depts = $this->medecin_model->get_depts();
    		
    		if(is_array($depts)) {
    			$res = array("response" => array("status" => 0, "error" => "OK", "depts" => $depts));
    		}
    		else {
    			$res = array("status" => 20, "error" => "Liste des départements impossible à obtenir. Contacter l'administrateur système.");
    		}
    		
    	}
    	catch (Exception $e) {
    		$res = array("status" => 1, "error" => "Données inaccessibles. Contacter l'administrateur système.");
    	}
    	$this->response($res);
    }  
    /**
     * Fournit au format xml ou json la liste des médecins du numéro de département demandé
     * Paramètre : numéro de département
     * Login et mot de passe du visiteur sont traités dans le constructeur de la classe mère
     */    
    public function medecins_get() {  
    	try {
	    	$this->load->model("medecin_model");
	    	$medecins = false;
	    	$numero = $this->get('nodept');
	        if(! $numero || !is_numeric($numero) ) {
	        	$res = array("status" => 2, "error" => "Données incorrectes ou incomplètes.");
	        }
	        else {  
	    		$medecins = $this->medecin_model->get_all_bydept($numero);  
	    		if (is_array($medecins)) {
	    			if ( count($medecins) > 0 ) {
	    				$res = array("status" => 0, "error" => "OK", "medecins" => $medecins);
	    			}
	    			else {
	    				$res = array("status" => 31, "error" => "Aucun médecin pour le département demandé.");
	    			}
	    		}
	    		else {
	    			$res = array("status" => 30, "error" => "Liste des médecins impossible à obtenir. Contacter l'administrateur système.");
	    		}
	        } 
    	}
    	catch (Exception $e) {
    		$res = array("status" => 2, "error" => "Données inaccessibles. Contacter l'administrateur système.");    		
    	}
        $this->response($res);  
    }  
}  
?>